﻿using System;
using System.Collections.Generic;
using System.Threading.Tasks;

namespace Chat
{
    /// <summary>
    /// 
    /// </summary>
    public interface IChatService
    {
        /// <summary>
        /// 进入聊天室
        /// </summary>
        /// <param name="name"></param>
        /// <returns></returns>
        Task SignIn(string name);

        /// <summary>
        /// 读取当前聊天室在线的人
        /// </summary>
        /// <returns></returns>
        Task<List<ChatUser>> GetOnlineUsers();

        /// <summary>
        /// 对大家说
        /// </summary>
        /// <param name="message"></param>
        /// <returns></returns>
        Task Say(string message);

        /// <summary>
        /// 性能测试
        /// </summary>
        /// <param name="to"></param>
        /// <returns></returns>
        Task Perfermance(ChatUser to);

        //这一段代码是错误的，不能同时存在两个名称都是Say的方法 ，你要做多参数重载，你就直接在一个方法上加默认参数
        //Task Say(string message,string to);

        /// <summary>
        /// 对某人说
        /// </summary>
        /// <param name="message"></param>
        /// <returns></returns>
        Task SayTo(string message, ChatUser to);

    }
}
